/*
** SMSE2K Tag System
*/

class CTag {
	private:
		const char* name;
		const char* strValue;
		int 	    intValue;
		double 	    dblValue;		

	public:
		double GetDouble();
		int   GetInt();
		char* GetString();

		void  SetString(const char* value);
		void  SetInt(int value);
		void  SetDouble(double value);
};

// CBaseTagHandler: Loads and saves tags using CBaseFile.
class CBaseTagHandler {
	private:
		CTag* tags[30]; // good enough, i guess.


	// Stuff that we don't modify (get/set tags)
	public:
		CTag* FindTag(const char* name);
		bool AreTagsLoaded();

	// We have to modify these. By default these will return success,
	// but will have no tags set.
	public:
		virtual int LoadTags(CBaseFile* f) { return 0; };	
		virtual int SaveTags(CBaseFile* f) { return 0; };
};